Форум dkLab и Denwer
Здесь общаются Web-разработчики.
Генеральный спонсор:
Хостинг «Джино»

Orphus многоязычный (SH_)
Author Message
SH_
Заглянувший



Joined: 02 Nov 2005
Posts: 4
Карма: -1
   поощрить/наказать


PostPosted: Tue Nov 08, 2005 1:18 pm (написано за 2 минуты 17 секунд)
   Post subject: Orphus многоязычный
Reply with quote

Скажите, пожалуйста, можно ли прописать в скрипт Orphus автоопределение языка клиента, и подзагружать систему уже на родном языке?
Знаю, что есть локализации Orphus, но каждую из них теперь приходиться прописывать отдельно.
Back to top
View user's profile Send private message Send e-mail
WingedFox
Профессионал



Joined: 29 Apr 2003
Posts: 4064
Карма: 268
   поощрить/наказать

Location: Питер

PostPosted: Tue Nov 08, 2005 3:59 pm (спустя 2 часа 40 минут; написано за 14 минут 55 секунд)
   Post subject:
Reply with quote

SH_
FAQTs.com wrote:
NN provides the property
  navigator.language
but this is not the language set in http headers but it is the language
the Netscape browser is localized to.
The http header preference can be read in NN4+ with trusted script
  netscape.security.PrivilegeManager.enablePrivilege
('UniversalPreferencesRead');
  alert(navigator.preference('intl.accept_languages'))
IE provides
  navigator.systemLanguage
which is the OS localized language and
  navigator.userLanguage
which is the language codes selected in control panel of Win for
regional settings.
Если не нужно точное определения языков, тогда всё просто.

Добавляем все языки следующим образом:
Code (any language): скопировать код в буфер обмена
lng: {
 #locale_1: {
 },
 #locale_2: {
 },
 #locale_3: '#locale_1',
 def: '#locale_2'
}
Объект со строками указываeтся только для основной локали. Для аналогов используется название подходящей локали.
Кроме того, обязателен параметр def, указывающий какой язык использовать, если локаль не определена или нет перевода.
Пример:
Code (JavaScript): скопировать код в буфер обмена
  lng: {
   def : 'en_us',
   en_en : 'en_us',
   en_us : {
    // English (English)
    alt:         "Select spelling error with mouse and press Ctrl+Enter. Let's make the language pure!",
    badbrowser:  "Your browser dows not support selection handling of IFRAMEs. Maybe its version is too archaic, maybe something else.",
    toobig:      "You have selected too large text block!",
    thanks:      "Thanks for your collaboration!",
    subject:     "Spelling error",
    docmsg:      "Document:",
    intextmsg:   "Spelling error in text:",
    ifsendmsg:   "Do you want to send a notice to webmaster?\nYour browser will NOT be redirected.",
    gohome:      "Do you want to visit Orphus homepage now?",
    newwin:      "Page will be opened in new window.",
    name:        "Orphus system",
    author:      "Author: Dmitry Koteroff.",
    to:          "Orphus user"
   },
   ru_ru : {
    // Russian (Russian)
    alt:        "      Ctrl+Enter.   !",
    badbrowser: "         IFRAME. ,   ,  ,  - .",
    toobig:     "     !",
    thanks:     "  !",
    subject:    " ",
    docmsg:     ": ",
    intextmsg:  "   :",
    ifsendmsg:  "    ?\n      .",
    gohome:     "     Orphus?",
    newwin:     "    .",
    name:       " Orphus",
    author:     ":  .",
    to:         " Orphus"
   }
  },
Далее дополняем init:
Code (JavaScript): скопировать код в буфер обмена
  init: function() { with (this) {
    var th = this;
    // Find user locale
    var nl = navigator.language?navigator.language:(navigator.userLanguage+"_"+navigator.userLanguage);
    nl = nl.toLowerCase().replace("-","_");
    nl = ((typeof lng[nl]).toLowerCase() == 'object')?nl:(lng[nl] == null?lng['def']:lng[nl]);
    // Leave single translations (do we need to switch translations in runtime?)
    lng = lng[nl];
Вот и всё.
Если же нужно определять язык более корректно, тогда устанавливайте куку на сервере, исходя из Accept-Language.

PS: Trusted Script спрашивает у пользователя - разрешить ли доступ. Т.о. - использовать не рекомендуется.
Back to top
View user's profile Send private message
SH_
Заглянувший



Joined: 02 Nov 2005
Posts: 4
Карма: -1
   поощрить/наказать


PostPosted: Wed Nov 09, 2005 12:44 pm (спустя 20 часов 45 минут; написано за 19 секунд)
   Post subject:
Reply with quote

Спасибо, будем изучать.
Back to top
View user's profile Send private message Send e-mail
WingedFox
Профессионал



Joined: 29 Apr 2003
Posts: 4064
Карма: 268
   поощрить/наказать

Location: Питер

PostPosted: Wed Nov 09, 2005 1:17 pm (спустя 32 минуты; написано за 5 секунд)
   Post subject:
Reply with quote

SH_
Пожалуйста.
Back to top
View user's profile Send private message
Дмитрий Котеров
Администратор



Joined: 10 Mar 2003
Posts: 13665
Карма: 412
   поощрить/наказать


PostPosted: Thu Nov 10, 2005 8:00 pm (спустя 1 день 6 часов 43 минуты; написано за 49 секунд)
   Post subject:
Reply with quote

Только это... лучше бы язык выбирать на стороне сервера, а не на стороне клиента, ибо так значительно сократится трафик. Например, сделать orphus.htm PHP-скриптом, в который уже вставлять соответствующие языковые константы в зависимости от языка.
Back to top
View user's profile Send private message Send e-mail
Аркадий
Guest





Карма: 388
   поощрить/наказать


PostPosted: Thu Nov 24, 2005 3:38 pm (спустя 13 дней 19 часов 37 минут; написано за 2 минуты 49 секунд)
   Post subject:
Reply with quote

Скажите, почему белорусская и украинская версии Orphus'а обозначаются как "be" и "uk", а не "by" и "ua" соответственно (стандарт alpha2 (www.artlebedev.ru/tools/country-list/))?
Ведь получается, что вы обозначили Бельгию и Англию. :)
Back to top
Владимир Коэн-Цедек
Участник форума



Joined: 26 Sep 2004
Posts: 176
Карма: 8
   поощрить/наказать

Location: с исторической родины

PostPosted: Thu Nov 24, 2005 6:29 pm (спустя 2 часа 51 минуту; написано за 3 минуты 23 секунды)
   Post subject:
Reply with quote

Аркадий wrote:
Скажите, почему белорусская и украинская версии Orphus'а обозначаются как "be" и "uk", а не "by" и "ua" соответственно (стандарт alpha2 (www.artlebedev.ru/tools/country-list/))?
Ведь получается, что вы обозначили Бельгию и Англию. :)
Потому что это обозначения языков, а Вы смотрите на список обозначений стран.
Back to top
View user's profile Send private message
Display posts from previous:   
This forum is locked: you cannot post, reply to, or edit topics.   This topic is locked: you cannot edit posts or make replies. All times are GMT + 3 Hours
Page 1 of 1    Email to a Friend.
You can post new topics in this forum. You can reply to topics in this forum. You cannot edit your posts in this forum. You cannot delete your posts in this forum. You cannot vote in polls in this forum. You can attach files in this forum. You can download files in this forum.
XML